multiplying algebraic terms